package com.data.util;

public class LoginMethodUtils {

    /***
     * 查看传入的账号是什么类型
     * @param username 登录的账号
     * @return 返回账号的类型
     */
    public static String accountType(String username) {
        String em = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
        String ph = "^[1][3578]\\d{9}$";
        //邮箱登录
        if (username.matches(em)) {
            return FinalStringUtils.EMAIL;
            //手机号登录
        } else if (username.matches(ph)) {
            return FinalStringUtils.PHONE;
            //这个uuid
        } else if (username.length() >= 32) {
            return FinalStringUtils.ID;
        } else {//用户名登录
            return FinalStringUtils.USERNAME;
        }
    }

    /**
     * 根据传入的参数来组装Hql语句
     *
     * @param hql    传入hql
     * @param params 参数类型
     * @return 拼接好的hql
     */
    public static String getHql(StringBuilder hql, String params) {
        if (FinalStringUtils.PHONE.equals(params)) {
            hql.append("phone=?");
        } else if (FinalStringUtils.EMAIL.equals(params)) {
            hql.append("email=?");
        } else if (FinalStringUtils.ID.equals(params)) {
            hql.append("id=?");
        } else {
            hql.append("username=?");
        }
        return hql.toString();
    }

    /**
     * 身份类型，身份集合来以判断身份是否在身份集合中
     *
     * @param type  身份类型
     * @param value 指定的类型集合
     * @return 身份是否在指定的集合中
     */
    public static boolean loginAuth(int type, int... value) {
        for (int i : value) {
            if (i == type) {
                return true;
            }

        }
        return false;

    }

}
